/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package rhplus.gestor;

import java.util.Date;
import rhplus.persistencia.ContaDeUtilizador;
import rhplus.persistencia.Hospital;
import rhplus.servico.Consulta;
import rhplus.sistema.CodigoPostal;
import rhplus.utilizador.Cliente;
import rhplus.utilizador.ClienteParticular;
import rhplus.utilizador.Colaborador;
import rhplus.utilizador.DoencaGenerica;
import rhplus.utilizador.DoencaPassada;
import rhplus.utilizador.MembroDoAgregado;
import rhplus.utilizador.Pessoa;
import rhplus.utilizador.TratamentoPassado;

/**
 *
 * @author Tshuba
 */
public class AdicionarDadosBd {

    public static void meterDados() {

        //criar codigo postal
        CodigoPostal cod = new CodigoPostal(1111, 111, "Lisboa");
        CodigoPostal.insere(cod);
        Long codigo = CodigoPostal.devolve(1111, 111).getIdCodigoPostal();


        //insere hospital
        Hospital ho = new Hospital("Santa Maria", 1, "Lisboa", "Lisboa", 166611111, "Dr. Antonio Silva", codigo);
        Hospital.insere(ho);


        //inserir Administrador
        Date dat = UtensiliosParaDatas.devolveDataEmDate("1970-01-01");
        Pessoa nova_pessoa = new Pessoa("Administrador", 'M', 000000000, dat, 000000000, "admim@rh.pt", 000000000,
                000000000, "Lisboa", "O+", codigo);

        Date data_admissao = UtensiliosParaDatas.devolveDataEmDate("1990-01-01");
        Date data_fim = UtensiliosParaDatas.devolveDataEmDate("2020-01-01");
        Colaborador novo_colaborador = new Colaborador("000000000000000000000", "000000000", data_admissao, 1000.0, data_admissao, null,
                Long.MIN_VALUE, null, Long.MIN_VALUE, "Administrador", null);

        ContaDeUtilizador nova_conta;
        nova_conta = new ContaDeUtilizador("admin1", "5f4dcc3b5aa765d61d8327deb882cf99", "1");
        Colaborador.insere(nova_pessoa, novo_colaborador, nova_conta);


        //inserir um medico
        Pessoa nova_medico = new Pessoa("Joaquim Silva", 'M', 166611333, dat, 166611333, "joaquim@rh.pt", 166611333,
                166611333, "Lisboa", "O+", codigo);

        Long id_h = Hospital.devolveTodos().getFirst().getIdHospital();
        Colaborador novo_cmedico = new Colaborador("000000000000000000000", "000000000", data_admissao, 1000.0, data_fim, "8:00-14:00",
                id_h, null, null, "medico", "Clinica Geral");

        ContaDeUtilizador nova_contamedico = new ContaDeUtilizador("medico", "5f4dcc3b5aa765d61d8327deb882cf99", "1");
        Colaborador.insere(nova_medico, novo_cmedico, nova_contamedico);


        // inserir utente
        Pessoa novo_utente = new Pessoa("Joao Silva", 'M', 111111111, dat, 111111111, "joao@rh.pt", 111111111,
                111111111, "Lisboa", "O+", codigo);

        ContaDeUtilizador utente_conta = new ContaDeUtilizador("utilizador", "5f4dcc3b5aa765d61d8327deb882cf99", "1");
        ClienteParticular.insere(novo_utente, utente_conta);


        //inserir membro Agregado
        Date y = UtensiliosParaDatas.devolveDataEmDate("1970-01-01");
        Pessoa novo_membro = new Pessoa("Andre Silva", 'M', 111111112, y, 111111112, "andresilva@rh.pt", 111111112,
                111111112, "Lisboa", "O+", codigo);

        Long id_titular = Pessoa.devolveIdPessoaPorBI(111111111);
        Cliente.adicionaMembroDoAgregado(novo_membro, id_titular);


        //inserir tratamento passado
        Date datat = UtensiliosParaDatas.devolveDataEmDate("2009-01-01");
        TratamentoPassado.insere(new TratamentoPassado(id_titular, datat, "Entorse no joelho", "repouso e elaboracao de exercicios diarios"));

        //inserir doenca passada
        DoencaPassada.insere(new DoencaPassada("Gripe", id_titular, datat, "febre,tosse", "repouso e tomar medicamentos"));

        //inserir consulta
        Long id_medico = Pessoa.devolveIdPessoaPorBI(166611333);
        Consulta.insere(new Consulta("Clinica Geral", "activa", "2010-06-20", new Double(100.0), id_medico, id_titular, id_h));
    }
}
